package com.example.springboot01.webcontroller;

import com.example.springboot01.entity.UserInfo;
import com.example.springboot01.service.UserInfoSerivce;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class WebStudentController {
    @Autowired
    private UserInfoSerivce userInfoSerivce;
    //相当于UserInfoSerivce userInfoSerivce = new UserInfoSerivce();
    //也就是说，系统帮你自动new了一个对象，并且帮你管理起来。

    @RequestMapping("show_login")
    public String showLogin(){
        return "login";
        //在@Controller注解下，返回templates目录下的同名网页
        //在@RestController注解下。返回login字符串。
    }
    @RequestMapping("check_login")//凡是要接受参数的。都加上request变量，
    //如何把数据传递给前端，用model参数来传递给网页，request用来从网页获取数据
    public String checkLogin(HttpServletRequest request, Model model){
        String userName = request.getParameter("user_name");
        String password = request.getParameter("pwd");
        System.out.println(userName + "------" + password);
        if (userName.equals("唐红军") && password.equals("654321")) {
            //添加数据到前端。model就是把要传送的数据打包，并重命名，然后运输到对应的网页。
            model.addAttribute("user_name", userName);
            model.addAttribute("s_no", "219050503");
            model.addAttribute("sex", "男");

            return "main";//不是重定向，直接映射的是templates里面的网页名
        }
        else
            return "redirect:show_login";//重定向，对应的是请求名,show_login是一个存在的请求名
    }


    @RequestMapping("check_login_mybatis")
    public String checkLoginMybatis(HttpServletRequest request, Model model){
        String user_code = request.getParameter("userCode");
        String user_pwd = request.getParameter("userPwd");
        System.out.println("webController:user_code:" + user_code
                + "|user_pwd:" + user_pwd);
        //UserInfoSerivce userInfoSerivce = new UserInfoSerivce();
        UserInfo userInfo = null;
        //boolean flag = userInfoSerivce.checkLogin(user_code, user_pwd);
        userInfo = userInfoSerivce.checkLoginR(user_code, user_pwd);
        if (userInfo != null){
            //把对象存入到session中去。这样。拦截器就可以检验是否登录
            HttpSession session = request.getSession();
            session.setAttribute("user_info", userInfo);
            System.out.println("登录成功，"+session.getAttribute("user_info").toString());

            model.addAttribute("user_code", user_code);

            return "main";
        }
        else
            return "redirect:show_login";//重定向，对应的是请求名,show_login是一个存在的请求名
    }

    @RequestMapping("register_account")
    public String registerAccount(){
        return "register";
    }

}
